home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
clue.lha
/
clue
/
doc
/
clue.tex
/
node42_mn.html
< prev
next >
Wrap
Text File
|
1989-07-12
|
3KB
|
73 lines
<H3><A ID="SECTION001511100000000000000">
Contacts</A>
</H3><#4792#>
In CLUE, the basis for programming the user interface of an application
program is object-oriented programming --- creating objects called
<#114#><B>contacts</B><#114#><A ID="115"><tex2html_anchor_invisible_mark></A> and invoking their methods.
<P>
An interactive application program can be considered to consist of a collection
of functions, some of which perform the processing that is essential
to the application's purpose (e.g. text editing, knowledge base management,
etc.). Other functions exist solely for the purpose of communicating with
the application's human user. In CLUE, such human interface functions are
represented by objects known as <#116#><B>contacts</B><#116#>. Contacts are responsible for
presenting application information to the user on the display screen and for
informing the application of input sent by the user via interactive input
devices (such as the keyboard and the pointer). A contact generally embodies a
component of the user interface that knows how to:
<UL>
<LI>display its contents,
</LI>
<LI>process input events that are directed to it, and
</LI>
<LI>report its results (if any) back to the application.
</LI>
</UL>
<P>
A contact provides a relatively high-level abstraction for user interface
programming. The purpose of such an abstraction is twofold:
<UL>
<LI>To simplify and raise the level of the dialog between the application and
the user. A contact insulates the application programmer from the detailed behavior
of a user interface component (displaying its contents, acquiring its input,
etc.). As an ``agent'' of the application, a contact can direct
communication with the user in terms closer to the application's domain.
<P>
</LI>
<LI>To define a uniform framework within which many different types of user
interface objects can be combined. The contact class raises to a higher level the
commonality between a great variety of interface objects --- menus, forms,
dials, scroll bars, buttons, dialog boxes, text entry, etc.
</LI>
</UL>
<P>
Because CLUE is an object-oriented programming system, it is described
in terms of the proposed standard
Common Lisp Object System (CLOS)<A ID="121"><tex2html_anchor_invisible_mark></A>[#clos#<tex2html_cite_mark>#1##<tex2html_cite_mark>#]. The CLUE
specification thus
consists primarily of a set of CLOS classes, generic functions, and methods.
<P>
The subclassing and inheritance properties of CLOS are
important to the use of contacts. A contact (sub)class implements a
specific interface technique (for input, output, or both) and a specific
presentation style. Thus, a contact subclass
can represent either an extension in technique (e.g. a hierarchical-pop-up-menu
subclass of a pop-up-menu class) or a variation in style only (e.g. a
drop-shadow-pop-up-menu subclass). This is expected to lead to the development
of contact ``libraries'', providing a rich repertoire of interface
techniques and a choice of several functionally-interchangeable styles.
<P>
=0 <#4798#>=0 <#4802#>